all: encrypt crack

crack: crack.o crack_K1.o crack_K2.o DES.o inverse.o feistel.o
	gcc -o crack crack.o crack_K1.o crack_K2.o DES.o inverse.o feistel.o

crack_K1.o: crack_K1.c crack.h DES.h
	gcc -c crack_K1.c

crack_K2.o: crack_K2.c crack.h DES.h
	gcc -c crack_K2.c

crack.o : crack.c crack.h DES.h 
	gcc -c crack.c

inverse.o : inverse.c 
	gcc -c inverse.c

feistel.o : feistel.c crack.h DES.h
	gcc -c feistel.c

encrypt : encrypt.o DES.o	
	gcc -o encrypt encrypt.o DES.o

encrypt.o : encrypt.c DES.h 
	gcc -c encrypt.c

DES.o : DES.c DES.h
	gcc -c DES.c

clean :
	rm encrypt crack *.o
